using System;
using System.Collections.Generic;
using System.Text;
using flickr.api.communication;

namespace flickr.api
{
    public struct TagMode
    {
        public const string Any = "any";
        public const string All = "all";
    }
    
    public class Tags : FlickrObject
    {
        public Tags() : base() {}
        public Tags(FlickrConnection connection) : base(connection){}
        
        public PhotoInfo getListPhoto(string photoId)
        {
            FlickrRequest request = CreateRequest();
            request.AddParameter(FlickrParameterType.PhotoId, photoId);

            return Send(request).Photo;
        }
        
        public WhoInfo getListUser(string userId)
        {
            FlickrRequest request = CreateRequest();
            request.AddParameter(FlickrParameterType.UserId, userId);

            return Send(request).Who;
        }

        public WhoInfo getListUserPopular(string userId, int count)
        {
            FlickrRequest request = CreateRequest();
            request.AddParameter(FlickrParameterType.UserId, userId);
            request.AddParameter(FlickrParameterType.Count, count);

            return Send(request).Who;
        }
        
        public PhotoInfoTags getRelated(string tag)
        {
            FlickrRequest request = CreateRequest();
            request.AddParameter(FlickrParameterType.Tag, tag);

            return Send(request).Tags;
        }
    }
}
